#!/usr/bin python;
# -*- coding: latin-1 -*-

import logging.handlers
from logging import *
import datetime,  time, os
from stat import *

from ConfigParser import SafeConfigParser, NoOptionError, ParsingError
from nacteniKonfigurace import *

#formatter = logging.Formatter('%(asctime)s %(name)-9s %(levelname)s: %(message)s', datefmt='%d.%m.%Y %H:%M:%S') 
formatter = logging.Formatter('%(asctime)s %(levelname)s: %(message)s', datefmt='%d.%m.%Y %H:%M:%S') 

# =======================================================
# ============ logger pro automat =======================
# =======================================================
autHandler = logging.handlers.TimedRotatingFileHandler(souborLogAutomat, "midnight", 1, 2) 
autHandler.setFormatter(formatter) 
autLogger = logging.getLogger('automat')
autLogger.setLevel(automatLogLevel)
autLogger.addHandler(autHandler)

# =======================================================
# ============ logger pro nacitani dat ====================
# =======================================================
nacitaniDatHandler = logging.handlers.TimedRotatingFileHandler(souborLogNacitaniDat, "midnight", 1, 2) 
nacitaniDatHandler.setFormatter(formatter) 
nacitaniDatLogger = logging.getLogger('nacitaniDat')
nacitaniDatLogger.setLevel(nacitaniDatLogLevel)
nacitaniDatLogger.addHandler(nacitaniDatHandler)

# =======================================================
# ============ logger pro GPRS prenos ====================
# =======================================================
gprsHandler = logging.handlers.TimedRotatingFileHandler(souborLogGprs, "midnight", 1, 2) 
gprsHandler.setFormatter(formatter) 
gprsLogger = logging.getLogger('GPRS')
gprsLogger.setLevel(gprsLogLevel)
gprsLogger.addHandler(gprsHandler)

# =======================================================
# ============ logger pro SMS komunikaci ================
# =======================================================
gsmHandler = logging.handlers.TimedRotatingFileHandler(souborLogGsm, "midnight", 1, 2) 
gsmHandler.setFormatter(formatter) 
gsmLogger = logging.getLogger('GSM')
gsmLogger.setLevel(gsmLogLevel)
gsmLogger.addHandler(gsmHandler)

def rozhodniZdaPretocitLogovaciSoubor(handler, nazevLogSouboru):    
    if os.path.isfile(nazevLogSouboru): 
        aktualniCasSekundy = time.time()
        stariSouboruSekundy = os.stat(nazevLogSouboru)[ST_MTIME]
        aktualniDatum = datetime.date.fromtimestamp(aktualniCasSekundy)
        datumSouboru = datetime.date.fromtimestamp(stariSouboruSekundy)        
        if aktualniDatum > datumSouboru:
            handler.doRollover()

# orotujeme pri startu pro jistotu vsechny Pythonem spravovane logy
# - PRIDAVAT SEM DALSI DLE POTREBY
rozhodniZdaPretocitLogovaciSoubor(gprsHandler, souborLogGprs)
rozhodniZdaPretocitLogovaciSoubor(gsmHandler, souborLogGsm)
rozhodniZdaPretocitLogovaciSoubor(autHandler, souborLogAutomat)
rozhodniZdaPretocitLogovaciSoubor(nacitaniDatHandler, souborLogNacitaniDat)
